home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue30 / system / LibIntf / Libintf.int
Encoding:
Text File  |  1997-07-27  |  13.8 KB  |  299 lines

  1. Unit LibIntf;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms,
  7.   TypInfo, IStreams, DsgnIntf, VirtIntf, ToolIntf, ExptIntf, FileIntf, EditIntf;
  8.  
  9. const
  10.   LibrarySignature='COMPLIB0056';
  11.  
  12.   fsVisible = 0;
  13.   fsIconic  = 1;
  14.   fsZoomed  = 2;
  15.  
  16.   ssNormal    = 0;
  17.   ssMinimized = 1;
  18.   ssMaximized = 2;
  19.  
  20.   esCanUndo   = 0;
  21.   esCanRedo   = 1;
  22.   esCanCut    = 2;
  23.   esCanCopy   = 3;
  24.   esCanPaste  = 4;
  25.   esCanDelete = 5;
  26.   esCanZOrder = 6;
  27.   esCanAlignGrid     = 7;
  28.   esCanEditOle       = 8;
  29.   esCanTabOrder      = 9;
  30.   esCanCreationOrder = 10;
  31.   esCanPrint         = 11;
  32.  
  33. type
  34.  
  35.   TDesignDialog = (ddAlign,ddSize,ssScale,ddTabOrder,ddCreationEdition,ddSaveTemplate);
  36.  
  37.   TDesignerOptions = record
  38.     DisplayGrid  : boolean;
  39.     SnapToGrid : boolean;
  40.     GridSizeX : integer;
  41.     GridSizeY : integer;
  42.     ShowComponentCaption : boolean;
  43.   end;
  44.  
  45.   TIModule = class;
  46.  
  47.   TIPaletteItem = class(TInterface)
  48.   public
  49.     function  CreateComponent(Owner:TComponent; Parent:TComponent; Module:TIModule):TComponent; virtual; abstract;
  50.     procedure Paint(Canvas:TCanvas; X:integer; Y:integer); virtual; abstract;
  51.   end;
  52.  
  53.   TIDelphiIDE=class(TInterface)
  54.   public
  55.     procedure ActiveFormModified; virtual; abstract;
  56.     procedure ComponentRenamed(const CurName:string; const NewName:string); virtual; abstract;
  57.     procedure ExecDesignDialog(DesignDialog:TDesignDialog); virtual; abstract;
  58.     procedure FormActivated; virtual; abstract;
  59.     function  GetAppHandle : integer; virtual; abstract;
  60.     function  GetPathAndBaseExeName : string; virtual; abstract;
  61.     function  GetBaseRegKey : string; virtual; abstract;
  62.     function  GetToolSelected : boolean; virtual; abstract;
  63.     function  GetCurCompClass : TIPaletteItem; virtual; abstract;
  64.     function  GetPaletteItem(ComponentClass:TComponentClass) : TIPaletteItem; virtual; abstract;
  65.     function  GetCurTime : integer; virtual; abstract;
  66.     procedure GetDesignerOptions(var Options:TDesignerOptions); virtual; abstract;
  67.     function  GetMainWindowSize : TRect; virtual; abstract;
  68.     function  LockState : boolean; virtual; abstract;
  69.     procedure ModalEdit(EditKey:char; ReturnWindow:pointer); virtual; abstract;
  70.     procedure OpenForm(const FormName:string; Show:boolean); virtual; abstract;
  71.     procedure RaiseException (const Message:string); virtual; abstract;
  72.     procedure ResetCompClass; virtual; abstract;
  73.     procedure SelectionChanged; virtual; abstract;
  74.     procedure ShowClassHelp(const ClassName:string); virtual; abstract;
  75.     procedure SelectItemName(const PropertyName:string); virtual; abstract;
  76.     procedure ValidateActiveModule; virtual; abstract;
  77.     procedure AddExpert(Expert:TIExpert); virtual; abstract;
  78.     procedure RemoveExpert(Expert:TIExpert); virtual; abstract;
  79.     function  GetToolServices : TIToolServices; virtual; abstract;
  80.     procedure ExpertsLoaded; virtual; abstract;
  81.     function  GetFileSystem(const Ident:string): TIVirtualFileSystem; virtual; abstract;
  82.     function  MakeBackupFileName(const FileName:string): string; virtual; abstract;
  83.     function  CreateBackupFile : boolean; virtual; abstract;
  84.     function  WinHelp(const HelpFile:string; Command:integer; Data:integer): boolean; virtual; abstract;
  85.   end;
  86.  
  87.   TICompClass = class(TInterface)
  88.   public
  89.     function GetBitmapPos(Selected:boolean): TPoint; virtual; abstract;
  90.     function GetClassName : string; virtual; abstract;
  91.     function GetDefaultPage : string; virtual; abstract;
  92.     function GetModuleIndex : integer; virtual; abstract;
  93.   end;
  94.  
  95.   TPropKind = (pkProperties,pkEvents);
  96.  
  97.   TIProperty = class;
  98.  
  99.   TGetPropProc = procedure(Prop:TIProperty);
  100.  
  101.   TFormState = set of fsVisible..fsZoomed;
  102.  
  103.   TEditAction = (eaUndo, eaCut, eaCopy, eaPaste, eaDelete, eaSelectAll, eaPrint,
  104.                  eaBringToFront, eaSendToBack, eaAlignToGrid);
  105.  
  106.   TEditState = set of esCanUndo..esCanPrint;
  107.  
  108.   TShowState = set of ssNormal..ssMaximized;
  109.  
  110.   TAffect = (afTop, afLeft, afBottom, afRight, afHCenter, afVCenter,
  111.              afHSpace, afVSpace, afHWinCenter, afVWinCenter);
  112.  
  113.   TSizeAffect = (asHGrow, asHShrink, asHAbsolute,
  114.                  asVGrow, asVShrink, asVAbsolute, asNothing);
  115.  
  116.   TIFile = class(TInterface)
  117.   public
  118.     function  FormFileOpen: TIStream; virtual; abstract;
  119.     function  GetFileName: string; virtual; abstract;
  120.     function  GetTimeAtLoad: integer; virtual; abstract;
  121.     function  GetModifyTime: integer; virtual; abstract;
  122.     function CheckFileDate: Boolean; virtual; abstract;
  123.     procedure Rename(const NewFileName:string); virtual; abstract;
  124.     procedure Save; virtual; abstract;
  125.   end;
  126.  
  127.   TIForm = class;
  128.   TICompInfo = class;
  129.  
  130.   TGetFormProc = procedure (AForm:TIForm);
  131.  
  132.   TIForm = class(TIFile)
  133. {  protected
  134.     function GetDesigner:TFormDesigner;}
  135.   public
  136.     procedure Align(Affect:TAffect); virtual; abstract;
  137.     procedure CreateComponent(Item:TICompClass); virtual; abstract;
  138.     function  FindCompClass(const CompName:string): string; virtual; abstract;
  139.     function  GetAncestorName: string; virtual; abstract;
  140.     function  GetCompCount: integer; virtual; abstract;
  141.     procedure GetDependentForms(Proc:TGetFormProc); virtual; abstract;
  142.     function  GetDesignClassName: string; virtual; abstract;
  143.     procedure GetFormDependencies(Proc:TGetFormProc); virtual; abstract;
  144.     function  GetNVComp(Index:integer): pointer; virtual; abstract;
  145.     function  GetCompInfo(Index:integer): TICompInfo; virtual; abstract;
  146.     function  GetModule: TIModule; virtual; abstract;
  147.     function  GetCompName(Index:integer): string; virtual; abstract;
  148.     function  GetFileSystem: string; virtual; abstract;
  149.     function  GetFormInterface: TIFormInterface; virtual; abstract;
  150.     function  GetFormName: string; virtual; abstract;
  151.     function  GetFormImage: word; virtual; abstract;
  152.     procedure GetFormUnits(Proc:TGetStrProc); virtual; abstract;
  153.     function  GetState: TFormState; virtual; abstract;
  154.     function  GetTabCompCount: integer; virtual; abstract;
  155.     function  GetTabCompInfo(Order:integer; var Name:string; var Comp:pointer): boolean; virtual; abstract;
  156.     function  GetObjectMenuItemCount: integer; virtual; abstract;
  157.     function  GetObjectMenuItem(Index:integer): string; virtual; abstract;
  158.     procedure ObjectMenuAction(Index:integer); virtual; abstract;
  159.     procedure Hide; virtual; abstract;
  160.     procedure GoDormant; virtual; abstract;
  161.     procedure RenameFormMethod(const CurName:string; const NewName : string); virtual; abstract;
  162.     procedure RemoveDependentLinks; virtual; abstract;
  163.     procedure Scale(Factor:integer); virtual; abstract;
  164.     procedure SetFileSystem(const FileSystem:string); virtual; abstract;
  165.     procedure SetFormName(const AName:string); virtual; abstract;
  166.     procedure SetSelection(const Name:string); virtual; abstract;
  167.     procedure SetNVComp(Comp:pointer; Oredr:integer); virtual; abstract;
  168.     procedure SetTabCompOrder(Comp:pointer; Oredr:integer); virtual; abstract;
  169.     procedure Show; virtual; abstract;
  170.     procedure ShowAs(ShowState:TShowState); virtual; abstract;
  171.     procedure Size(Affect:TSizeAffect; Value:integer); virtual; abstract;
  172.   end;
  173.  
  174.   TDragTarget = class(TObject)
  175.   public
  176.     procedure Create(ADesigner:TFormDesigner); virtual; abstract;
  177.     function DragOver(Terget,Source : TObject; X,Y : integer; State:TDragState):boolean; virtual; abstract;
  178.     procedure DragDrop(Terget,Source : TObject; X,Y : integer); virtual; abstract;
  179.   end;
  180.  
  181.   TDragTargetClass = class of TDragTarget;
  182.  
  183.   TILibrary = class (TInterface)
  184.   public
  185.     procedure CopySelectionToStream(S:TMemoryStream); virtual; abstract;
  186.     function  CreateForm(AModule:TIModule; const AFileName:string; Existing:boolean;
  187.                          const AFormName:string; AAncestor:string; AFileSystem:string): TIForm; virtual; abstract;
  188.     function  CreateFromStream(AModule:TIModule; const AFileName:string; IStream:TIStream): TIForm; virtual; abstract;
  189.     procedure DesignerOptionsChanged; virtual; abstract;
  190.     procedure EditAction(Action:TEditAction); virtual; abstract;
  191.     function  FindFile(const FileName:string): TIFile; virtual; abstract;
  192.     function  FindForm(const FormName:string): TIForm; virtual; abstract;
  193.     function  GetActiveForm : TIForm; virtual; abstract;
  194.     procedure GetClassUnits(const ClassName:string; Proc:TGetStrProc); virtual; abstract;
  195.     function  GetCompClass(Index:integer): TICompClass; virtual; abstract;
  196.     function  GetCompClassCount: integer; virtual; abstract;
  197.     procedure GetCompHierarchy(Proc:TGetStrProc); virtual; abstract;
  198.     function  GetComponentBitmap: integer; virtual; abstract;
  199.     function  GetEditState: TEditState; virtual; abstract;
  200.     function  GetFirstSelectionType:string; virtual; abstract;
  201.     procedure GetFormNames(Proc:TGetStrProc); virtual; abstract;
  202.     function  GetModuleCount: integer; virtual; abstract;
  203.     function  GetModuleName(Index:integer): string; virtual; abstract;
  204.     function  GetOleCtrlHelp(const Member:string; var HelpCtx:integer; var HelpFile:string): boolean; virtual; abstract;
  205.     procedure GetProperties(PropKind:TPropKind; Proc:TGetPropProc); virtual; abstract;
  206.     function  GetSelectionName: string; virtual; abstract;
  207.     function  GetSelectionType: string; virtual; abstract;
  208.     procedure HideWindow; virtual; abstract;
  209.     procedure IsDesignMsg(var Msg:TMsg; var Handled:boolean); virtual; abstract;
  210.     function  IsTopmostForm(Wnd:integer): boolean; virtual; abstract;
  211.     function  IsValidTemplateSelection: boolean; virtual; abstract;
  212.     procedure ModalEditDone(ReturnWindow:pointer); virtual; abstract;
  213.     procedure PasteSelectionFromStream(S:TMemoryStream); virtual; abstract;
  214.     procedure RaiseException(const Message:string); virtual; abstract;
  215.     procedure RegisterDesignWindow(Window:TForm); virtual; abstract;
  216.     procedure RegisterDragTarget(const SourceName:string; TargetClass:TDragTargetClass); virtual; abstract;
  217.     procedure ShowWindows; virtual; abstract;
  218.     procedure SetLockState(State:boolean); virtual; abstract;
  219.     procedure SetProjectName(const Name:string); virtual; abstract;
  220.     procedure GetSelection(ASelection:TComponentList); virtual; abstract;
  221.     procedure SetSelection(Designer:TDesigner; DesignWindow:TForm; ASelection:TComponentList); virtual; abstract;
  222.     procedure UnregisterDesignWindow(Window:TForm); virtual; abstract;
  223.     procedure UnregisterExpertGroup(Group:integer); virtual; abstract;
  224.   end;
  225.  
  226.   TIModule = class(TInterface)
  227.   public
  228.     procedure Activate(IsForm:boolean); virtual; abstract;
  229.     procedure CreateMethod(const Name:string; TypeData:PTypeData); virtual; abstract;
  230.     procedure FormModified; virtual; abstract;
  231.     function  GetAncestorClassName(const ClassName:string):string; virtual; abstract;
  232.     procedure GetMethods(TypeData:PTypeData; Proc:TGetStrProc); virtual; abstract;
  233.     function  FormIsTopmost: boolean; virtual; abstract;
  234.     procedure FormResurrected; virtual; abstract;
  235.     function  MethodExists(const Name:string): boolean; virtual; abstract;
  236.     procedure RenameComponent(CompInfo:TICompInfo; const CurName, NewName: string); virtual; abstract;
  237.     procedure RenameForm(CompInfo:TICompInfo; const NewName:string); virtual; abstract;
  238.     procedure RenameMethod(const CurName, NewName: string); virtual; abstract;
  239.     procedure ShowMethod(const Name: string); virtual; abstract;
  240.     procedure GetImportedForms(Proc:TGetStrProc); virtual; abstract;
  241.     procedure ImportForm(const FormName:string); virtual; abstract;
  242.     procedure Notify(NotifyCode:TNotifyCode); virtual; abstract;
  243.     procedure SwapSourceFormView; virtual; abstract;
  244.     function  GetMethod(const MethodName:string): string; virtual; abstract;
  245.     procedure AddMethods(Methods:string; Replacements:TStrings; MethodNames:TStrings); virtual; abstract;
  246.     function HasInterface: Boolean; virtual; abstract;
  247.     function InterfaceMemberExists(CONST Name: String): Boolean; virtual; abstract;
  248.     procedure AddInterfaceMember(CONST MemberText: String); virtual; abstract;
  249.  end;
  250.  
  251.   TIProperty = class(TInterface)
  252.   public
  253.     procedure Activate; virtual; abstract;
  254.     function  AllEqual: boolean; virtual; abstract;
  255.     procedure Edit; virtual; abstract;
  256.     function  GetAttributes: TPropertyAttributes; virtual; abstract;
  257.     function  GetCompClassName: string; virtual; abstract;
  258.     function  GetEditLimit: integer; virtual; abstract;
  259.     function  GetEditValue(var Value:string): boolean; virtual; abstract;
  260.     function  GetName: string; virtual; abstract;
  261.     procedure GetProperties(Proc:TGetPropProc); virtual; abstract;
  262.     function  GetPropType: PTypeInfo; virtual; abstract;
  263.     function  GetValue: string; virtual; abstract;
  264.     procedure GetValues(Proc:TGetStrProc); virtual; abstract;
  265.     procedure Revert; virtual; abstract;
  266.     procedure SetValue(const Value:string); virtual; abstract;
  267.     function GetCompClass: TClass; virtual; abstract;
  268.   end;
  269.  
  270.   TICompInfo = class(TInterface)
  271.   public
  272.     procedure ClearEvent(Index:integer); virtual; abstract;
  273.     function  GetClassName: string; virtual; abstract;
  274.     function  GetEventCount: integer; virtual; abstract;
  275.     function  GetEventInfo(Index:integer): PPropInfo; virtual; abstract;
  276.     function  GetEventValue(Index:integer): string; virtual; abstract;
  277.     function  GetComponentHandle:pointer; virtual; abstract;
  278.     function GetNamePath: String; virtual; abstract;
  279.     function GetSubInfoCount: Integer; virtual; abstract;
  280.     function GetSubInfo(lndex: Integer): TICompInfo; virtual; abstract;
  281.  end;
  282.  
  283. TInitLibraryFunc = function( App: TIDelphiIDE): TILibrary;
  284.  
  285. const
  286.   DelphiIDE : TIDelphiIDE = nil;
  287.   CompLib   : TILibrary = nil;
  288.  
  289. var
  290.   CF_COMPONENTS : word;
  291.  
  292. {function PossibleStream(const S:string):boolean;
  293. procedure CopyStreamToClipboard(S:TMemoryStream);
  294. function GetClipboardStream: TMemoryStream;}
  295.  
  296. implementation
  297.  
  298. end.
  299.